
#include "../systeminc/version.h"
#include"../systeminc/system.h"
#include"../systeminc/loadrealbin.h"
#include"../systeminc/anim_tbl.h"
#include"../systeminc/login.h"
#include"../systeminc/menu.h"
#include"../systeminc/map.h"
//#include"../caryIme.h"
//#include "../systeminc/ime_sa.h"
#include "../systeminc/t_music.h"
#include "../systeminc/field.h"
#include"../systeminc/netmain.h"
#include "../systeminc/lssproto_cli.h"

//HELP中使用到的图档资料
typedef struct HELPBMP{
	short	x;			//偏移x
	short	y;			//偏移Y
	short	bmpno;		//图档编号
	short	s;
}*LPHELPBMP;

//HELP中使用到说明的文字资料结构
typedef struct DESC{
	short	bmpno;				//图号(help_bmp中的index)
	unsigned char	color;				//颜色
	unsigned char	indent;				//缩排(以双字元为单位)
	unsigned char	linkto_seg_no;		//连结(help_seg中的index)
	char	description[120];	//说明文字
}*LPDESC;

//HELP中使用到的页资料结构
typedef struct PAGE{
	short	desc_index;			//说明结构开始的索引号(此desc_index为根据seg_index在help_index取得DESC的阵列的index)
	unsigned char	desc_num;			//说明的结构数
	unsigned char	by;
}*LPPAGE;

//HELP中使用到的章节资料结构
typedef struct SEG{
	short	page_index;			//从第几页开始的索引号(help_page中的index)
	unsigned char	page_num;			//页数
	char	tile[59];			//tile
}*LPSEG;

//HELP中所有使用到的图档资料阵列
HELPBMP help_bmp[] = {  { 0,	 0,		 0,							 0},	//0
						{ 10,	 5,		 26259,						 0},	//1
						{ 44,	 16,	 CG_FIELD_MENU_BTN_OFF,		 0},	//2
						{ -20,	 16,	 CG_FIELD_GROUP_BTN_OFF,	 0},	//3
						{ 18,	 16,	 CG_FIELD_DUEL_BTN_OFF,		 0},	//4
						{ 12,	 16,	 CG_FIELD_CARD_BTN_OFF,		 0},	//5
						{ 10,	 6,		 CG_FIELD_TRADE_BTN_OFF,	 0},	//6
						{ -15,	 -9,	 CG_FIELD_ACT_BTN_OFF,		 0},	//7
						{ -9,	 16,	 CG_FIELD_CHANNEL_BTN_OFF,	 0},	//8
						{ 76,	 32,	 CG_BTL_BUTTON_ATTACK_UP,	 0},	//9
						{ 76,	 -20,	 CG_BTL_BUTTON_GUARD_UP,	 0},	//10
						{ 24,	 32,	 CG_BTL_BUTTON_JUJUTU_UP,	 0},	//11
						{ 24,	 -20,	 CG_BTL_BUTTON_ITEM_UP,		 0},	//12
						{ -28,	 32,	 CG_BTL_BUTTON_CAPTURE_UP,	 0},	//13
						{ 127,	 10,	 CG_BTL_BUTTON_CROSS,		 0},	//14
						{ -28,	 -20,	 CG_BTL_BUTTON_PET_UP,		 0},	//15
						{ -80,	 32,	 CG_BTL_BUTTON_HELP_UP,		 0},	//16
						{ -80,	 -20,	 CG_BTL_BUTTON_ESCAPE_UP,	 0},	//17
						{ 204,	 20,	 CG_FIELD_JOIN_BTL_BTN_OFF,	 0}};	//18

//主选单				  图号,	颜色,	 缩排,	 连结,	 说明
DESC  help_desc_1[] = { 
#ifndef _JOBDAILY
						{ 0,	0,		 0,		 0,		 "主要功能分7大项"},
#endif						
						{ 1,	0,		 1,		 1,		 "新手入门"},
						{ 1,	0,		 1,		 2,		 "一般"},
						{ 1,	0,		 1,		 3,		 "关于对话"},
						{ 1,	0,		 1,		 4,		 "关于道具宠物"},
						{ 1,	0,		 1,		 5,		 "关于战斗"},
						{ 1,	0,		 1,		 6,		 "关于家族"},
						{ 1,	0,		 1,		 7,		 "关于精灵"},
#ifdef _JOBDAILY
						{ 1,	0,		 1,		 31,	 "任务日志"},
#endif
						{ 1,	0,		 1,		 8,		 "其他"},

						{ 0,	0,		 0,		 0,		 "如还有其他疑问请拨客服专线（010）84542288"},
						{ 0,	0,		 0,		 0,		 " 或传真（010）84543156"} };

//新手入门				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_2[] = {  { 0,	0,		 0,		 0,		 "当新手玩家创完人物之后，需注意下列事项以方便练功："},
						{ 0,	0,		 0,		 0,		 "  1.当等级低时，请尽量在村庄附近活动，以防怪物等级"},
						{ 0,	0,		 0,		 0,		 "    过高，偏远地带，请结伴同行。"},
						{ 0,	0,		 0,		 0,		 "  2.若战斗后发现耐久力不足，可以回村庄中的医院补足"},
						{ 0,	0,		 0,		 0,		 "    ，在等级10以内，玩家可免费补足耐久力及气力，而"},
						{ 0,	0,		 0,		 0,		 "    宠物在医院中补耐久力不限等级均为免费。"},
						{ 0,	0,		 0,		 0,		 "  3.战斗结束后可以随机得到怪物的肉，这些肉可以用来"},
						{ 0,	0,		 0,		 0,		 "    补耐久力，或者可以带回村到肉店卖出，以赚取石币"},
						{ 0,	0,		 0,		 0,		 "    。"},
						{ 0,	0,		 0,		 0,		 "  4.若玩家战斗完之后想要回村而不知道路，只要登出就"},
						{ 0,	0,		 0,		 0,		 "    会马上回到出生地的村长家。"},
						{ 0,	0,		 0,		 0,		 "  5.当玩家升级后，将会有 3点的点数可以自由分配加在"},
						{ 0,	0,		 0,		 0,		 "    体力、腕力、耐力及速度， 1点体力代表 4点的耐久"},
						{ 0,	0,		 0,		 0,		 "    力， 1点腕力代表 1点攻击力， 1点耐力代表 1点防"},
						{ 0,	0,		 0,		 0,		 "    御力， 1点速度代表 1点敏捷力。"},
						{ 0,	0,		 0,		 0,		 "  6.当需要使用肉来补耐久力时，请打开物品栏，在肉上"},
						{ 0,	0,		 0,		 0,		 "    连按滑鼠左键 2下，在点选需要补耐久力的对象即可"},
						{ 0,	0,		 0,		 0,		 "    。"}};

//一般					  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_3[] = {  { 1,	0,		 0,		 9,		 "1.关于游戏基本操作"},
						{ 1,	0,		 0,		 10,	 "2.关于功能视窗"},
						{ 1,	0,		 0,		 11,	 "3.关于游戏设定(MENU)"}};

//关于对话				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_4[] = {  { 0,	4,		 0,		 0,		 "1.与NPC交谈"},
						{ 0,	0,		 0,		 0,		 "  和村人及店员等 NPC对话时，请站在村人及店员等 NPC"},
						{ 0,	0,		 0,		 0,		 "  前方并面对他们输入任意一字再按下 ENTER键，即可与"},
						{ 0,	0,		 0,		 0,		 "  村人及店员等 NPC说话。 (若无法交谈时，请将聊天设"},
						{ 0,	0,		 0,		 0,		 "  定里的音量设定调整为 5 )"},
						{ 0,	4,		 0,		 0,		 "2.一般对话"},
						{ 0,	0,		 0,		 0,		 "  用键盘输入要对话的文字，并按下 ENTER键，即可与附"},
						{ 0,	0,		 0,		 0,		 "  近的玩家或团队内的玩家对话。 (若无法交谈请将聊天"},
						{ 0,	0,		 0,		 0,		 "  设定里的音量设定调整为 5 )"},
						{ 0,	4,		 0,		 0,		 "3.名片"},
						{ 0,	0,		 0,		 0,		 "  按下邮件，选择在名片栏中自己要交谈的玩家，再按下"},
						{ 0,	0,		 0,		 0,		 "  mail，用键盘输入要对话的文字后，按下传送即可与自"},
						{ 0,	0,		 0,		 0,		 "  己选择的玩家交谈。 (必须要与玩家交换名片后才可使"},
						{ 0,	0,		 0,		 0,		 "  用 )"},
						{ 0,	4,		 0,		 0,		 "4.家族对话"},
						{ 8,	0,		 1,		 0,		 "  按下家族聊天后，选择自己想要的频道，按下加"},
						{ 0,	0,		 0,		 0,		 "  入后，用键盘输入要对话的文字，并按下 ENTER键，即"},
						{ 0,	0,		 0,		 0,		 "  可与该频道的所有人交谈，或是直接使用热键Ctrl + C"},
						{ 0,	0,		 0,		 0,		 "  即可加入家族全频，玩家想回到一般对话频道只需再对"},
						{ 0,	0,		 0,		 0,		 "  话栏位上加上冒号 (:)即可回覆一般正常对话频道，家"},
						{ 0,	0,		 0,		 0,		 "  族频道必须在同一星球才能使用。（未加入家族无法使"},
						{ 0,	0,		 0,		 0,		 "  用此功能）"},
						{ 0,	4,		 0,		 0,		 "5.重复发言"},
						{ 0,	0,		 0,		 0,		 "  游戏中可按方向键↑↓寻找之前曾经说过的话，最高可"},
						{ 0,	0,		 0,		 0,		 "  纪录最近所说过的60句话。如想重复之前所发过的话，"},
						{ 0,	0,		 0,		 0,		 "  可使用此功能。"}};

//关于道具宠物			  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_5[] = {  { 1,	0,		 0,		 12,	 "1.物品"},
						{ 1,	0,		 0,		 13,	 "2.宠物"}};

//关于战斗				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_6[] = {  { 1,	0,		 0,		 23,	 "1.一般战斗"},
						{ 1,	0,		 0,		 24,	 "2.一般PK"},
						{ 1,	0,		 0,		 25,	 "3.家族PK"},
						{ 1,	0,		 0,		 26,	 "4.庄园争夺战"},
						{ 1,	0,		 0,		 27,	 "5.关于自动战斗设定"}};

//关于家族				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_7[] = {  { 1,	0,		 0,		 18,	 "1.成立与解散"},
						{ 1,	0,		 0,		 19,	 "2.加入及退出家族"},
						{ 1,	0,		 0,		 20,	 "3.家族留言版"},
						{ 1,	0,		 0,		 21,	 "4.族长功能"},
						{ 1,	0,		 0,		 22,	 "5.庄园特殊功能"}};

//关于精灵				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_8[] = {  { 1,	0,		 0,		 14,	 "1.光明精灵"},
						{ 1,	0,		 0,		 15,	 "2.黑暗精灵"},
						{ 1,	0,		 0,		 16,	 "3.属性精灵"},
						{ 1,	0,		 0,		 17,	 "4.特殊精灵"},
						{ 1,	0,		 0,		 28,	 "5.魔法精灵"}};
/*
//其他					  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_9[] = {  { 1,	4,		 0,		 30,	 "1.关于料理"},
						{ 1,	4,		 0,		 31,	 "2.关于合成"},
						{ 1,	4,		 0,		 32,	 "3.关于输入法"},
						{ 1,	4,		 0,		 33,	 "4.关于热键"},
						{ 1,	4,		 0,		 34,	 "5.切换视窗模式"},
						{ 1,	4,		 0,		 35,	 "6.关于连线品质"}};
						
*/
DESC help_desc_9[] = {  { 1,	0,		 0,		 29,	 "新增　〔精灵的召唤〕"},
/*#ifdef _JOBDAILY						
						{ 1,	0,		 0,		 31,	 "新增  〔 任务日志 〕"},
#else
						{ 0,	0,		 0,		 0,      ""},	
#endif*/
						{ 0,	0,		 0,		 0,		 ""},
						{ 0,	4,		 0,		 0,		 "1.关于料理"},
						{ 0,	0,		 0,		 0,		 "      料理是由宠物来完成的，首先必须先到四大出生地"},
						{ 0,	0,		 0,		 0,		 "  的村子里的宠物店让宠物学习料理技能，再到玛丽娜丝"},
						{ 0,	0,		 0,		 0,		 "  及加加村的24小时便利商店购买料理所需的食材。"},
						{ 0,	0,		 0,		 0,		 "      料理的方法是直接在道具栏的食材上按滑鼠右键，"},
						{ 0,	0,		 0,		 0,		 "  至少需选两样以上食材才能料理，选好食材后宠物栏会"},
						{ 0,	0,		 0,		 0,		 "  自动开启，选择会料理的宠物在宠物名称上按一下，再"},
						{ 0,	0,		 0,		 0,		 "  按下宠物技能后会出现宠物技能一览表，选择料理技能"},
						{ 0,	0,		 0,		 0,		 "  按下去，之后宠物就会出现搬运食材进行料理。"},
						{ 0,	4,		 0,		 0,		 "2.关于合成"},
						{ 0,	0,		 0,		 0,		 "      合成是由宠物来完成的，首先必须先到四大出生地"},
						{ 0,	0,		 0,		 0,		 "  的村子里的宠物店让宠物学习加工技能，再到萨姆吉尔"},
						{ 0,	0,		 0,		 0,		 "  或卡鲁它那村购买加工所需的素材。"},
						{ 0,	0,		 0,		 0,		 "      加工分成三种类，一种是同样是素材，一种是同样"},
						{ 0,	0,		 0,		 0,		 "  是道具，另一种是素材和道具的加工。合成的方法同料"},
						{ 0,	0,		 0,		 0,		 "  理的方法。"},
						{ 0,	4,		 0,		 0,		 "3.关于输入法"},
						{ 0,	0,		 0,		 0,		 "  一进入游戏初始的输入法是英数，也就是能输入英文和"},
						{ 0,	0,		 0,		 0,		 "  数字。如果想叫出输入法输入文字的话，只要按下平常"},
						{ 0,	0,		 0,		 0,		 "  切换输入法的热键就能叫出输入法，输入完文字后按下"},
						{ 0,	0,		 0,		 0,		 "  enter 就会将你所输入的文字发送给其他玩家听到。要"},
						{ 0,	0,		 0,		 0,		 "  特别注意的是若输入的是日文或韩文等非中文的文字到"},
						{ 0,	0,		 0,		 0,		 "  游戏中，如果对方玩家的电脑无日文或韩文等非中文的"},
						{ 0,	0,		 0,		 0,		 "  字型时，将会看到空白的文字。"},
						{ 0,	4,		 0,		 0,		 "4.关于热键"},
						{ 7,	0,		 1,		 0,		 "    人物动作"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 1 坐下"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 2 挥手"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 3 点头"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 4 高兴"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 5 生气"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 6 悲伤"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 7 站立"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 8 走动"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 9 昏倒"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + 0 攻击"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + - 防御"},
						{ 0,	0,		 0,		 0,		 "    Ctrl + = 受伤"},
						{ 0,	4,		 0,		 0,		 "5.切换视窗模式"},
						{ 0,	0,		 0,		 0,		 "  热键 ALT + ENTER。如果想切换到视窗模式时，需先将"},
						{ 0,	0,		 0,		 0,		 "  电脑色彩设成 256色。"},
						{ 0,	4,		 0,		 0,		 "6.关于连线品质"},
						{ 0,	0,		 0,		 0,		 "  游戏画面右下角的＊号后面的数字是代表连线的品质，"},
						{ 0,	0,		 0,		 0,		 "  数字越大代表连线品质越差。"}};
	
//关于游戏基本操作		  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_10[] = { { 0,	4,		 0,		 0,		 "1.人物移动"},
						{ 0,	0,		 0,		 0,		 "  按滑鼠左键可以移动到所点选的地方。"},
						{ 0,	0,		 0,		 0,		 "  持续按住左键的话，人物会往所指的方向持续的移动。"},
						{ 0,	4,		 0,		 0,		 "2.人物转向"},
						{ 0,	0,		 0,		 0,		 "  滑鼠右键可以转动人物的方向。"},
						{ 0,	4,		 0,		 0,		 "3.拾获道具"},
						{ 0,	0,		 0,		 0,		 "  掉落的项目旁边，按滑鼠右键。"}};

//关于功能视窗栏		  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_11[] = { { 0,	0,		 0,		 0,		 "将游标移至游戏视窗最底下就会出现下列的7种状态"},
						{ 0,	0,		 0,		 0,		 "  地图：开启右上角的小地图。"},
						{ 0,	0,		 0,		 0,		 "        热键 Ctrl + M"},
						{ 0,	0,		 0,		 0,		 "  状况：开启人物状态。"},
						{ 0,	0,		 0,		 0,		 "        热键 Ctrl + S"},
						{ 0,	0,		 0,		 0,		 "  宠物：开启宠物栏，查看宠物的状态。"},
						{ 0,	0,		 0,		 0,		 "        热键 Ctrl + P"},
						{ 0,	0,		 0,		 0,		 "  道具：开启人物的道具栏以及人物的装备栏。"},
						{ 0,	0,		 0,		 0,		 "        热键 Ctrl + I"},
						{ 0,	0,		 0,		 0,		 "  邮件：开启人物的名片栏。"},
						{ 0,	0,		 0,		 0,		 "        热键 Ctrl + E"},
						{ 0,	0,		 0,		 0,		 "  相簿：开启宠物相簿。"},
						{ 0,	0,		 0,		 0,		 "        热键 Ctrl + A"},
						{ 0,	0,		 0,		 0,		 "  系统：开启系统选项。"},
						{ 0,	0,		 0,		 0,		 "        登出：登出游戏。"},
						{ 0,	0,		 0,		 0,		 "        原地登出：登出后再进入游戏会回到上次登出的"},
						{ 0,	0,		 0,		 0,		 "        地点。"},
						{ 0,	0,		 0,		 0,		 "        聊天设定：显示画面上可显示的最大对话行数、"},
						{ 0,	0,		 0,		 0,		 "                  改变对话的颜色、说话的范围以及可"},
						{ 0,	0,		 0,		 0,		 "                  纪录常用的文字（F1~F8）。"},
						{ 0,	0,		 0,		 0,		 "        背景音乐设定：可改变音乐音量的大小和节奏的"},
						{ 0,	0,		 0,		 0,		 "                      快慢。"},
						{ 0,	0,		 0,		 0,		 "        音效设定：可改变音效音量的大小和立体声、单"},
						{ 0,	0,		 0,		 0,		 "                  声道。"},
						{ 0,	0,		 0,		 0,		 "        滑鼠设定：设定游标为一般或平滑。"},
{ 1,	0,		 2,		 27,	 "自动战斗设定"}};

//关于游戏设定			  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_12[] = { { 3,	4,		 0,		 0,		 "1.组队"},
						{ 0,	0,		 0,		 0,		 "      面对想要加入的人按下〈加入队伍〉的按钮就会加"},
						{ 0,	0,		 0,		 0,		 "  入该名玩家的队伍。加入队伍以后，移动就由队长来决"},
						{ 0,	0,		 0,		 0,		 "  定，队长就是在头上有 L记号的人喔！"},
						{ 0,	0,		 0,		 0,		 "      想脱离队伍的时候，只要再按一次〈加入队伍〉的"},
						{ 0,	0,		 0,		 0,		 "  按钮就行了。在战斗中逃跑的话则视为脱离队伍，而如"},
						{ 0,	0,		 0,		 0,		 "  果队长逃走的话，那队伍就会自动解散了。"},
						{ 0,	0,		 0,		 0,		 "      如果玩家想当队长的话，只要将组队设成 YES就可"},
						{ 0,	0,		 0,		 0,		 "  以让其他的玩家加入你的队伍了。"},
						{ 4,	4,		 0,		 0,		 "2.决斗"},
						{ 0,	0,		 0,		 0,		 "      当玩家想和其他的玩家PK时，只要将决斗设成 YES"},
						{ 0,	0,		 0,		 0,		 "  然后面对面，其中一方按下游戏画面右上角的〈与其他"},
						{ 0,	0,		 0,		 0,		 "  玩家决斗〉的按钮就会进入战斗画面了。"},
						{ 0,	0,		 0,		 0,		 "      另外，两个队伍也能互相PK，只要双方队长将决斗"},
						{ 0,	0,		 0,		 0,		 "  设成 YES，然后双方队长面对面其中一方按下〈与其他"},
						{ 0,	0,		 0,		 0,		 "  玩家决斗〉的按钮就会进入战斗画面了。PK结束后决斗"},
						{ 0,	0,		 0,		 0,		 "  将会自动设为NO。"},
						{ 5,	4,		 0,		 0,		 "3.交换名片"},
						{ 0,	0,		 0,		 0,		 "  当玩家们想要互相交换名片时，只要先将交换名片设成"},
						{ 0,	0,		 0,		 0,		 "   YES，然后面对面其中一方按下游戏画面左上角的〈交"},
						{ 0,	0,		 0,		 0,		 "  换名片〉就可以了，此时名片栏会多一张对方玩家的名"},
						{ 0,	0,		 0,		 0,		 "  片。"},
						{ 0,	4,		 0,		 0,		 "4.聊天"},
						{ 0,	0,		 0,		 0,		 "  聊天可以设为全员和队伍。全员是指你在说话时画面上"},
						{ 0,	0,		 0,		 0,		 "  的玩家都可以听到你说的话，包括跟 NPC交谈。队伍是"},
						{ 0,	0,		 0,		 0,		 "  指说话时只有跟你一起组队的玩家才能听到你所说的话"},
						{ 6,	4,		 0,		 0,		 "5.交易"},
						{ 0,	0,		 0,		 0,		 "  当玩家想跟其他的玩家进行交易时，需要先将交易设成"},
						{ 0,	0,		 0,		 0,		 "   YES，然后面对面其中一方按下游戏画面左上角的〈交"},
						{ 0,	0,		 0,		 0,		 "  易〉按钮，之后再放上你所要交易的物品（钱或宠物或"},
						{ 0,	0,		 0,		 0,		 "  道具），放好交易物品以后只要其中一方按下OK键交易"},
						{ 0,	0,		 0,		 0,		 "  就会锁定，此时就无法再更换交易的物品了，只要另一"},
						{ 0,	0,		 0,		 0,		 "  方确认无误再按下OK键交易就会完成了。"},
						{ 0,	0,		 0,		 0,		 "  注意：一次交易的物品以 2个为上限，宠物一次以 1只"},
						{ 0,	0,		 0,		 0,		 "        为上限，若有更多的物品想交易，请重覆交易。"}};

//物品					  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_13[] = { { 0,	4,		 0,		 0,		 "1.武器"},
						{ 0,	0,		 0,		 0,		 "  单体攻击(伤害力大、可反击)种类：枪、斧、棍棒、爪"},
						{ 0,	0,		 0,		 0,		 "  单体攻击(伤害力大、不可反击)种类：石头"},
						{ 0,	0,		 0,		 0,		 "  复数攻击(伤害力小、不可反击)种类：弓、回力镖"},
						{ 0,	0,		 0,		 0,		 "  ( 皆分有精灵跟无精灵 2大种、各村所贩卖的物品不尽"},
						{ 0,	0,		 0,		 0,		 "  相同 )"},
						{ 0,	4,		 0,		 0,		 "2.防具"},
						{ 0,	0,		 0,		 0,		 "  头部: 兜或帽子"},
						{ 0,	0,		 0,		 0,		 "  颈部: 护身符或首饰"},
						{ 0,	0,		 0,		 0,		 "  手部: 戒指或手环"},
						{ 0,	0,		 0,		 0,		 "  身体: 铠或服"},
						{ 0,	0,		 0,		 0,		 "  ( 皆分有精灵跟无精灵 2大种、各村所贩卖的物品不尽"},
						{ 0,	0,		 0,		 0,		 "  相同 )"},
						{ 0,	4,		 0,		 0,		 "3.道具"},
						{ 0,	0,		 0,		 0,		 "      在物品栏内的皆可称道具，物品栏位一共15格，若"},
						{ 0,	0,		 0,		 0,		 "  玩家觉得不够用或有重要物品怕弄丢时，可将自己暂时"},
						{ 0,	0,		 0,		 0,		 "  用不到或重要的物品道具存放在四大村 ( 4个出生地) "},
						{ 0,	0,		 0,		 0,		 "  内的24商店内 (可存放 6个 )，也可至各村的道具店、"},
						{ 0,	0,		 0,		 0,		 "  医院、素材店购买自己所需要的物品。如: 回复药、气"},
						{ 0,	0,		 0,		 0,		 "  力回复药、复活药、羽毛、精灵草………等等。另外，"},
						{ 0,	0,		 0,		 0,		 "  村内的 NPC中也有贩卖物品的，如 :特产品贩卖员。"},
						{ 0,	0,		 0,		 0,		 "      也可将宠物设定成邮件，选择自己名片中所要寄信"},
						{ 0,	0,		 0,		 0,		 "  的玩家，再选择宠物邮件，再按下道具并把自己想寄的"},
						{ 0,	0,		 0,		 0,		 "  物品点滑鼠左键 2下、以放上物品，然后再输入任意一"},
						{ 0,	0,		 0,		 0,		 "  字后按下传送，即可把物品寄给自己所选择名片中的玩"},
						{ 0,	0,		 0,		 0,		 "  家，但有 2个先决条件对方才能收到自己所寄物品，1."},
						{ 0,	0,		 0,		 0,		 "  必须在同星球2.道具栏必须要有空位。此外，有些物品"},
						{ 0,	0,		 0,		 0,		 "  是不能寄放与邮寄的。"}};

//宠物					  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_14[] = { { 0,	0,		 0,		 0,		 "宠物除了自行在战斗中捕获外，也可在进行任务解迷中获"},
						{ 0,	0,		 0,		 0,		 "得，更可于各村庄中的宠物店，让自己的宠向饲育员学习"},
						{ 0,	0,		 0,		 0,		 "技能，各村的宠物技能也不尽相同，此外，更可将自己暂"},
						{ 0,	0,		 0,		 0,		 "时用不到或重要、喜欢的宠物存放在四大村 ( 4个出生地"},
						{ 0,	0,		 0,		 0,		 " )内的宠物店中，新人物每个人可存放 5只，转生后最多"},
						{ 0,	0,		 0,		 0,		 "可存放10只宠物，也就是一个人物最多拥有15只宠物。"}};

//光明精灵				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_15[] = { { 0,	0,		 0,		 0,		 "＊单体（玩家本身）、一体（玩家或宠物）、全体（同一"},
						{ 0,	0,		 0,		 0,		 "团队中全部人物及宠物）"},
						{ 0,	4,		 0,		 0,		 "  光明精灵－"},
						{ 0,	0,		 0,		 0,		 "    回复精灵：恢复耐久力的精灵"},
						{ 0,	0,		 0,		 0,		 "      哈鲁－治愈的精灵－恢复单体耐久力的精灵。"},
						{ 0,	0,		 0,		 0,		 "      芙雷雅－滋润的精灵－恢复一体耐久力的精灵。"},
						{ 0,	0,		 0,		 0,		 "      提欧－恩惠的精灵－恢复全体耐久力的精灵。"},
						{ 0,	0,		 0,		 0,		 "    净化精灵：恢复异常状态的精灵"},
						{ 0,	0,		 0,		 0,		 "      西鲁菲雅－高等净化精灵－全部状态异常恢复。"},
						{ 0,	0,		 0,		 0,		 "      美鲁菲－净化精灵（毒）－中毒状态恢复。"},
						{ 0,	0,		 0,		 0,		 "      爱鲁菲－净化精灵（石化）－石化状态恢复。"},
						{ 0,	0,		 0,		 0,		 "      所鲁菲－净化精灵（混乱）－混乱状态恢复。"},
						{ 0,	0,		 0,		 0,		 "      渥鲁菲－净化精灵（酒醉）－酒醉状态恢复。"},
						{ 0,	0,		 0,		 0,		 "      米鲁菲－净化精灵（昏睡）－昏睡状态恢复。"}};

//黑暗精灵				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_16[] = { { 0,	0,		 0,		 0,		 "＊单体（玩家本身）、一体（玩家或宠物）、全体（同一"},
						{ 0,	0,		 0,		 0,		 "团队中全部人物及宠物）"},
						{ 0,	4,		 0,		 0,		 "  黑暗精灵－使人物陷入异常状态的精灵"},
						{ 0,	0,		 0,		 0,		 "    一体异常状态："},
						{ 0,	0,		 0,		 0,		 "      贝诺美斯－猛毒的精灵－使玩家陷入中毒状态，玩"},
						{ 0,	0,		 0,		 0,		 "                家每一回合损1/10左右耐久力。"},
						{ 0,	0,		 0,		 0,		 "      威金尼尔－硬化的精灵－使玩家陷入石化状态，玩"},
						{ 0,	0,		 0,		 0,		 "                家的防御力将提高且无法做任何动作。"},
						{ 0,	0,		 0,		 0,		 "      迪所斯－混乱的精灵－使玩家陷入混乱状态，玩家"},
						{ 0,	0,		 0,		 0,		 "              的行为将无法照预定的进行（例如误伤队"},
						{ 0,	0,		 0,		 0,		 "              友）。"},
						{ 0,	0,		 0,		 0,		 "      莱伊卡－酒的精灵－使玩家陷入酒醉状态，玩家的"},
						{ 0,	0,		 0,		 0,		 "              命中率将下降。"},
						{ 0,	0,		 0,		 0,		 "      特落西－睡眠的精灵－使玩家陷入睡眠状态，玩家"},
						{ 0,	0,		 0,		 0,		 "              将无法做任何动作。"},
						{ 0,	0,		 0,		 0,		 "    全体异常状态：仅能使全体中一部分的人物陷入异常"},
						{ 0,	0,		 0,		 0,		 "                  状态。"},
						{ 0,	0,		 0,		 0,		 "      贝洛萨－毒雾的精灵－使玩家陷入中毒状态。"},
						{ 0,	0,		 0,		 0,		 "      威金娜斯－石化的精灵－使玩家陷入石化状态。"},
						{ 0,	0,		 0,		 0,		 "      贝所金－混迷的精灵－使玩家陷入混乱状态。"},
						{ 0,	0,		 0,		 0,		 "      莱伊萨－酩酊的精灵－使玩家陷入酒醉状态。"},
						{ 0,	0,		 0,		 0,		 "      特洛金－昏睡的精灵－使玩家陷入睡眠状态。"}};

//属性精灵				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_17[] = { { 0,	0,		 0,		 0,		 "＊单体（玩家本身）、一体（玩家或宠物）、全体（同一"},
						{ 0,	0,		 0,		 0,		 "团队中全部人物及宠物）"},
						{ 0,	4,		 0,		 0,		 "  属性精灵－使某一方的属性产生变化"},
						{ 0,	0,		 0,		 0,		 "    阿萨：大地的精灵－使玩家地属性加强。"},
						{ 0,	0,		 0,		 0,		 "    阿昆尼斯：水的精灵－使玩家水属性加强。"},
						{ 0,	0,		 0,		 0,		 "    芙雷美雅：火炎的精灵－使玩家火属性加强。"},
						{ 0,	0,		 0,		 0,		 "    温蒂妮：疾风的精灵－使玩家风属性加强。"},
						{ 0,	0,		 0,		 0,		 "    哈梅拉斯：调和的精灵－使玩家恢复成无属性。"},
						{ 0,	0,		 0,		 0,		 "    阿鲁帖拉：彩虹的精灵－使玩家一体属性反转。"},
						{ 0,	0,		 0,		 0,		 "    缪雷：奥萝拉的精灵（极光的精灵）－使玩家全体属"},
						{ 0,	0,		 0,		 0,		 "          性反转。"}};

//特殊精灵				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_18[] = { { 0,	0,		 0,		 0,		 "＊单体（玩家本身）、一体（玩家或宠物）、全体（同一"},
						{ 0,	0,		 0,		 0,		 "团队中全部人物及宠物）"},
						{ 0,	4,		 0,		 0,		 "  特殊精灵－均为单体精灵"},
						{ 0,	0,		 0,		 0,		 "    阿西美拉：光的精灵－攻击吸收一次，将对方的攻击"},
						{ 0,	0,		 0,		 0,		 "              转为自己的耐久力。"},
						{ 0,	0,		 0,		 0,		 "    美丽尼亚：镜的精灵－攻击反射一次，将对方的攻击"},
						{ 0,	0,		 0,		 0,		 "              反转为攻击对方。"},
						{ 0,	0,		 0,		 0,		 "    科雅拉：复活精灵－气绝状态恢复，将死亡的玩家复"},
						{ 0,	0,		 0,		 0,		 "            活并补充其耐久力。"},
						{ 0,	0,		 0,		 0,		 "    威鲁：守护精灵－攻击无效两次，将对方的攻击转为"},
						{ 0,	0,		 0,		 0,		 "          无效。"},
						{ 0,	0,		 0,		 0,		 "    复活守护精灵：气绝状态恢复+攻击无效两次。"},
						{ 0,	0,		 0,		 0,		 "    复活光精灵：气绝状态恢复+攻击吸收一次。"}};

//成立与解散			  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_19[] = { { 0,	4,		 0,		 0,		 "1.成立"},
						{ 0,	0,		 0,		 0,		 "  玩家需等级至少30级且已解成人礼，而身上有一万元者"},
						{ 0,	0,		 0,		 0,		 "  ，即可向家族管理员（位于各村村长家）申请成立家族"},
						{ 0,	0,		 0,		 0,		 "  。申请成立时需要填写家族名称（不可与其他家族重复"},
						{ 0,	0,		 0,		 0,		 "  ）、家族主旨、家族守护兽（可选择身上的其中一只宠"},
						{ 0,	0,		 0,		 0,		 "  物为守护兽，主要为合成及料理作用）及家族精灵（光"},
						{ 0,	0,		 0,		 0,		 "  明及黑暗两种精灵），且须七天内家族人数在10人以上"},
						{ 0,	0,		 0,		 0,		 "  ，家族方可正式成立，而家族人数上限为100人。"},
						{ 0,	4,		 0,		 0,		 "2.解散"},
						{ 0,	0,		 0,		 0,		 "  族长若欲解散家族，可向家族管理者申请解散即可。家"},
						{ 0,	0,		 0,		 0,		 "  族解散，家族存款也将一并清除!"}};


//加入及退出家族		  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_20[] = { { 0,	4,		 0,		 0,		 "1.加入"},
						{ 0,	0,		 0,		 0,		 "  玩家欲加入家族须向家族管理员（位于各村村长家）申"},
						{ 0,	0,		 0,		 0,		 "  请，申请时将出现所有家族列表以供选择，若列表上家"},
						{ 0,	0,		 0,		 0,		 "  族名称为蓝色代表此家族停止招收族员，白色则否，点"},
						{ 0,	0,		 0,		 0,		 "  选家族名称之后按下确定即可，但并非代表正式加入此"},
						{ 0,	0,		 0,		 0,		 "  家族，需经由此家族族长审核通过后才代表正式加入。"},
						{ 0,	4,		 0,		 0,		 "2.退出"},
						{ 0,	0,		 0,		 0,		 "  玩家若欲退出家族，向家族管理员申请退出即可。"}};

//家族留言版			  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_21[] = { { 0,	4,		 0,		 0,		 "1.家族成员列表"},
						{ 0,	0,		 0,		 0,		 "  可观看自己家族成员的资料（包含成员上线状态、姓名"},
						{ 0,	0,		 0,		 0,		 "  、等级、个人声望）。"},
						{ 0,	4,		 0,		 0,		 "2.家族留言"},
						{ 0,	0,		 0,		 0,		 "  仅有同一家族之间的成员可以留言。"},
						{ 0,	4,		 0,		 0,		 "3.家族之间留言版"},
						{ 0,	0,		 0,		 0,		 "  仅有族长可以留言。"},
						{ 0,	4,		 0,		 0,		 "4.申请家族据点"},
						{ 0,	0,		 0,		 0,		 "  当家族的声望到达1000且人数在30人以上，若列表上表"},
						{ 0,	0,		 0,		 0,		 "  示庄园尚未被申请，则族长有权利在此申请。"},
						{ 0,	4,		 0,		 0,		 "5.家族之间强者表"},
						{ 0,	0,		 0,		 0,		 "  可观看各种家族声望列表，经由族员的冒险、饲育、合"},
						{ 0,	0,		 0,		 0,		 "  成、料理以及家族之间的战斗可以增加家族声望。"}};

//族长功能				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_22[] = { { 0,	4,		 0,		 0,		 "1.族长广播"},
						{ 0,	0,		 0,		 0,		 "  可广播给家族内所有成员听。"},
						{ 0,	4,		 0,		 0,		 "2.家族成员管理"},
						{ 0,	0,		 0,		 0,		 "  可查看所有族员状态、决定是否继续招募家族成员，并"},
						{ 0,	0,		 0,		 0,		 "  可选择族员担任的职位。"},
						{ 0,	0,		 0,		 0,		 "  一个家族可选择五位成员做为家族长老，而长老除了无"},
						{ 0,	0,		 0,		 0,		 "  法让位、解散家族及踼出其它长老之外，其它的族长功"},
						{ 0,	0,		 0,		 0,		 "  能长老都可以使用，以减轻族长的负担。"},
						{ 0,	4,		 0,		 0,		 "3.族长让位"},
						{ 0,	0,		 0,		 0,		 "  族长可选择一族员（此一族员需在同一星球上，并且是"},
						{ 0,	0,		 0,		 0,		 "  online状态，且符合族长资格），就可将族长的位置让"},
						{ 0,	0,		 0,		 0,		 "  给他。"}};

//庄园特殊功能			  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_23[] = { { 0,	4,		 0,		 0,		 "1.家族银行"},
						{ 0,	0,		 0,		 0,		 "  位于庄园中的族长家，族员可以储存石币于个人或家族"},
						{ 0,	0,		 0,		 0,		 "  帐户，个人帐户的存款上限为一千万石币，而家族共同"},
						{ 0,	0,		 0,		 0,		 "  帐户的存款上限为一亿石币，而只有族长及长老们才可"},
						{ 0,	0,		 0,		 0,		 "  从家族共同帐户中提取石币。"},
						{ 0,	4,		 0,		 0,		 "2.家族护士"},
						{ 0,	0,		 0,		 0,		 "  位于庄园中族长家，族员与其宠物可免费补足耐久力及"},
						{ 0,	0,		 0,		 0,		 "  气力。"},
						{ 0,	4,		 0,		 0,		 "3.骑乘训练师"},
						{ 0,	0,		 0,		 0,		 "  位于庄园中，可查询并学习骑宠，总共有四个课程由初"},
						{ 0,	0,		 0,		 0,		 "  级班到特级班。"},
						{ 0,	4,		 0,		 0,		 "4.家族邀请函"},
						{ 0,	0,		 0,		 0,		 "  仅有族长才可制作家族邀请函，有此一邀请函即可进入"},
						{ 0,	0,		 0,		 0,		 "  此一庄园内族长的家（限邮寄）。"}};

//一般战斗				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_24[] = { { 0,	0,		 0,		 0,		 "    玩家在石器广大的原野上会以随机遇敌的方式出现战"},
						{ 0,	0,		 0,		 0,		 "斗，战斗时是采回合制，每回合玩家会有３０秒的时间做"},
						{ 0,	0,		 0,		 0,		 "选择，而画面右上方会出现战斗指令列表："},
						{ 9,	4,		 1,		 0,		 "攻击"},
						{ 0,	0,		 1,		 0,		 "      按下攻击后点选对面的敌人进行攻击。"},
						{ 10,	4,		 1,		 0,		 "防御"},
						{ 0,	0,		 1,		 0,		 "      人物将在此回合战斗中进行防御。"},
						{ 11,	4,		 1,		 0,		 "使用精灵"},
						{ 0,	0,		 1,		 0,		 "      在战斗中按此功能时，会依照身上装备道具所附"},
						{ 0,	0,		 1,		 0,		 "      有的精灵列表，玩家可选择表上的精灵对自己或"},
						{ 0,	0,		 1,		 0,		 "      对方施放。"},
						{ 12,	4,		 1,		 0,		 "使用道具栏的物品"},
						{ 0,	0,		 1,		 0,		 "      战斗中可打开道具栏使用肉类或是药类补血补气"},
						{ 0,	0,		 1,		 0,		 "      力，或是更换目前所使用的武器（不包括装备及"},
						{ 0,	0,		 1,		 0,		 "      首饰）。"},
						{ 13,	4,		 1,		 0,		 "捕捉宠物"},
						{ 0,	0,		 1,		 0,		 "      按下捕捉后点选对面的敌人加以捕捉，当人物身"},
						{ 0,	0,		 1,		 0,		 "      上已有五只宠物的时候，这个按键再战斗中将会"},
						{ 14,	0,		 1,		 0,		 "  出现一个        ，代表无法再捕捉宠物了。"},
						{ 15,	4,		 1,		 0,		 "唤回宠物及更换宠物"},
						{ 0,	0,		 1,		 0,		 "      战斗中可更换的宠物为宠物栏位的地方使用等待"},
						{ 0,	0,		 1,		 0,		 "      的宠物才可以再战斗中时更换。"},
						{ 16,	4,		 1,		 0,		 "请求协助战斗"},
						{ 0,	0,		 1,		 0,		 "      再战斗中如果想请其他人协助战斗，可点选这个"},
						{ 0,	0,		 1,		 0,		 "      按键，当你想加入其它玩家的战斗中时（当看到"},
						{ 0,	0,		 1,		 0,		 "      有其他玩家头上有help的时候），可按下画面中"},
						{ 18,	0,		 1,		 0,		 "  右上方加入战斗      的按键即可进入其他玩家"},
						{ 0,	0,		 1,		 0,		 "      的战斗中。"},
						{ 17,	4,		 1,		 0,		 "逃跑"},
						{ 0,	0,		 1,		 0,		 "      进入战斗画面后如果玩家不想选择战斗的话可以"},
						{ 0,	0,		 1,		 0,		 "      点选这个按键再战斗中逃跑。"}};

//一般PK				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_25[] = { { 0,	0,		 0,		 0,		 "玩家想要与玩家人物进行PK的时候，需要将画面左上角的"},
						{ 0,	0,		 0,		 0,		 "Menu选单中的决斗开置成 YES方能与其他玩家人物对战，"},
						{ 0,	0,		 0,		 0,		 "在玩家进行PK的时候不能使用战斗中的捉捕以及HELP的按"},
						{ 0,	0,		 0,		 0,		 "键。"},
						{ 0,	0,		 0,		 0,		 "一般PK大多进行在四大出生村子的共同竞技场，或是玩家"},
						{ 0,	0,		 0,		 0,		 "可以任意选择地点，进行一般PK，玩家必须面对面的跟想"},
						{ 0,	0,		 0,		 0,		 "要与之对战的玩家互相说好开启决斗，按下画面右上角的"},
						{ 4,	0,		 0,		 0,		 "即可跟玩家人物进行对战。"}};

//家族PK				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_26[] = { { 0,	0,		 0,		 0,		 "    家族与家族之间的PK需要经由双方族长设定PK的对战"},
						{ 0,	0,		 0,		 0,		 "时间，对战的场地在四大出生地村内的竞技场里面的PK聚"},
						{ 0,	0,		 0,		 0,		 "会场，双方族长必须先在场地预约人那里登记想要PK的时"},
						{ 0,	0,		 0,		 0,		 "间，家族PK的人数上限为５０人，而有２种方式来提供家"},
						{ 0,	0,		 0,		 0,		 "族双方家族决定胜负，一种是‘乱斗生存战’，其取胜的"},
						{ 0,	0,		 0,		 0,		 "定义为不管进场PK的人数多寡，以约定进行PK的时间终了"},
						{ 0,	0,		 0,		 0,		 "计算剩余场内的人数，多者为胜方；令一种为‘满场打飞"},
						{ 0,	0,		 0,		 0,		 "战’，其获胜的定义为不管进场的人数多寡，以约定进行"},
						{ 0,	0,		 0,		 0,		 "PK的时间终了计算被打飞离场的人数，多者为胜方。等待"},
						{ 0,	0,		 0,		 0,		 "的时间未到时是无法进入PK场内的，此时家族的族长可以"},
						{ 0,	0,		 0,		 0,		 "利用家族召唤员呼唤家族的成员集合在聚会场内。进入PK"},
						{ 0,	0,		 0,		 0,		 "场后等待倒数计时至开战，决斗的指令会自动打开，带队"},
						{ 0,	0,		 0,		 0,		 "的玩家点到PK的一队就会展开PK战了，而家族PK胜利的一"},
						{ 0,	0,		 0,		 0,		 "方可获得败方十分之一的家族声望。"}};

//庄园争夺战			  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_27[] = { { 0,	0,		 0,		 0,		 "家族声望达到１０００的家族族长可以申请四大庄园，其"},
						{ 0,	0,		 0,		 0,		 "他没有获得庄园的家族必须将家族的声望提升到超过四大"},
						{ 0,	0,		 0,		 0,		 "庄园家族的声望即可以踢馆的方式挑战庄园。"},
						{ 0,	0,		 0,		 0,		 "想要挑战庄园的家族族长达到足够的声望后，必须到想要"},
						{ 0,	0,		 0,		 0,		 "挑战的庄园去跟踢馆登记人登记踢馆，登记后有２４个小"},
						{ 0,	0,		 0,		 0,		 "时作准备的时间。当预定的时间到了，族长可以到家族召"},
						{ 0,	0,		 0,		 0,		 "唤员呼唤家族的成员到庄园内集合准备（召唤只限于同一"},
						{ 0,	0,		 0,		 0,		 "颗星球）。进入PK场后等待倒数计时至开战，决斗的指令"},
						{ 0,	0,		 0,		 0,		 "会自动打开，带队的玩家点到PK的一队就会展开PK战了，"},
						{ 0,	0,		 0,		 0,		 "而家族PK胜利的一方可获得败方十分之一的家族声望，并"},
						{ 0,	0,		 0,		 0,		 "取得该庄园。"}};

//关于自动攻击模式		  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_28[] = { { 0,	0,		 0,		 0,		 "按下键盘上的Page Up和Page Down 选择战斗模式："},
						{ 0,	4,		 0,		 0,		 "  玩家模式："},
						{ 0,	0,		 0,		 0,		 "    由玩家自己选择战斗时所要做的动作。"},
						{ 0,	4,		 0,		 0,		 "  AI模式（有四种功能的设定）："},
						{ 0,	0,		 0,		 0,		 "    补血：设定使用何种精灵或使用道具来补血，当耐久"},
						{ 0,	0,		 0,		 0,		 "          力低于数值的百分比时就会自动补血（优先使"},
						{ 0,	0,		 0,		 0,		 "          用肉来补血）。"},
						{ 0,	0,		 0,		 0,		 "    补气：当气低于数值的百分比时，就使用身上可以补"},
						{ 0,	0,		 0,		 0,		 "          气的道具恢复气力。"},
						{ 0,	0,		 0,		 0,		 "    首次：设定战斗的第一回合要使用的精灵或魔法。"},
						{ 0,	0,		 0,		 0,		 "    复活：设定使用何种精灵或使用道具来复活。"},
						{ 0,	0,		 0,		 0,		 "PS：每种AI的设定都可选择使用对象的优先顺序；特别注"},
						{ 0,	0,		 0,		 0,		 "    意，当你或宠物的血低于要补血的下限却无法补血，"},
						{ 0,	0,		 0,		 0,		 "    或宠物死亡却无法复活，就会自动逃跑。"}};

//魔法精灵				  图号,	颜色,	 缩排,	 连结,	 说明
DESC help_desc_29[] = { { 0,	4,		 0,		 0,		 "岩石撞击："},
						{ 0,	0,		 0,		 0,		 "  大地精灵雅尔丝授与—攻击单人的地属性魔法。"},
						{ 0,	4,		 0,		 0,		 "水柱："},
						{ 0,	0,		 0,		 0,		 "  水精灵瓦琦儿授与—攻击单人的水属性魔法。"},
						{ 0,	4,		 0,		 0,		 "火球："},
						{ 0,	0,		 0,		 0,		 "  火炎精灵费尔叶授与—攻击单人的火属性魔法。"},
						{ 0,	4,		 0,		 0,		 "风刃："},
						{ 0,	0,		 0,		 0,		 "  疾风精灵威恩德授与—攻击单人的风属性魔法。"}};

DESC help_desc_30[] = { 
						{ 0,	4,		 0,		 0,		 "精灵的召唤说明"},
						{ 0,	0,		 0,		 0,		 "1.当精灵召唤你的时候，界面上的CALL图形会闪烁，玩家"},
						{ 0,	0,		 0,		 0,		 "  必须点击精灵的召唤图形，就可以接受精灵的召唤。"},
						{ 0,	0,		 0,		 0,		 "2.精灵的召唤五分钟内若无任何回应，则自动取消精灵的"},
						{ 0,	0,		 0,		 0,		 "  召唤。"},
						{ 0,	0,		 0,		 0,		 "3.当接受精灵的召唤勇者必须于两天内完成任务，否则任"},
						{ 0,	0,		 0,		 0,		 "  务则结束，信物功能失效自动消失。"},
						{ 0,	0,		 0,		 0,		 "4.当精灵勇者完成任务后，勇者与使者可以带着信物前往"},
						{ 0,	0,		 0,		 0,		 "  领取奖品。"},
						{ 0,	0,		 0,		 0,		 "5.信物遗失则无法进行任务，丧失此次精灵的召唤机会，"},
						{ 0,	0,		 0,		 0,		 "  请妥加保管信物。"},
						{ 0,	4,		 0,		 0,		 "精灵的召唤道具说明"},
						{ 0,	0,		 0,		 0,		 "1.精灵使者装备使者信物后不遇敌。"},
						{ 0,	0,		 0,		 0,		 "2.精灵使者双击勇者信物可传送至勇者身边。"},
						{ 0,	0,		 0,		 0,		 "3.精灵勇者双击勇者信物后可查询任务内容。"}};

//#ifdef _TEACHER_SYSTEM
DESC help_desc_31[] = { 
						{ 0,	0,		 0,		 0,		 "1.当你面对其他玩家时，按下这个按钮，将会确认是否认"},
						{ 0,	0,		 0,		 0,		 "  定对方为你的导师。"},
						{ 0,	0,		 0,		 0,		 "2.当对方成为你的导师之后，当你获得声望时，你的导师"},
						{ 0,	0,		 0,		 0,		 "  将会得到你所获得的声望百分之五，但你的声望并不会"},
						{ 0,	0,		 0,		 0,		 "  因此减少。"},
						{ 0,	0,		 0,		 0,		 "3.导师获得声望的条件为必须在学生取得声望的同时与学"},
						{ 0,	0,		 0,		 0,		 "  生在同一星球上。"},
						{ 0,	0,		 0,		 0,		 "4.若导师不在线或当学生已取得声望后才上线，则导师并"},
						{ 0,	0,		 0,		 0,		 "  不会增加声望。"},
						{ 0,	0,		 0,		 0,		 "5.当拥有导师后，按此按钮则会出现导师状态，并且可以"},
						{ 0,	0,		 0,		 0,		 "  在此取消对方的导师资格。"},
						{ 0,	0,		 0,		 0,		 "6.取消对方的导师资格时，同时也会减少自己的魅力值。"}};
//#endif
DESC help_desc_32[] = { 					
						{ 0,	4,		 0,		 0,		 "编号              ─ 任务说明 ─                状态"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"},
						{ 0,	0,		 0,		 0,		 "jobdaily"}};	

//依据seg_index可得到DESC的阵列
LPDESC help_index[] = { &help_desc_1[0], &help_desc_2[0], &help_desc_3[0], &help_desc_4[0], &help_desc_5[0],
						&help_desc_6[0], &help_desc_7[0], &help_desc_8[0], &help_desc_9[0], &help_desc_10[0],
						&help_desc_11[0], &help_desc_12[0], &help_desc_13[0], &help_desc_14[0], &help_desc_15[0],
						&help_desc_16[0], &help_desc_17[0], &help_desc_18[0], &help_desc_19[0], &help_desc_20[0],
						&help_desc_21[0], &help_desc_22[0], &help_desc_23[0], &help_desc_24[0], &help_desc_25[0],
						&help_desc_26[0], &help_desc_27[0], &help_desc_28[0], &help_desc_29[0], &help_desc_30[0]
//#ifdef _TEACHER_SYSTEM
						,&help_desc_31[0]
//#endif					
						,&help_desc_32[0]	
						};

//所有PAGE的资料	  说明结构开始的索引号,	 说明的结构数
PAGE help_page[] = {{ 0,					 sizeof(help_desc_1)/sizeof(help_desc_1[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 7,												 0},
					{ 0,					 sizeof(help_desc_3)/sizeof(help_desc_3[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 11,											 0},
					{ 22,					 4,												 0},
					{ 0,					 sizeof(help_desc_5)/sizeof(help_desc_5[0]),	 0},
					{ 0,					 sizeof(help_desc_6)/sizeof(help_desc_6[0]),	 0},
					{ 0,					 sizeof(help_desc_7)/sizeof(help_desc_7[0]),	 0},
					{ 0,					 sizeof(help_desc_8)/sizeof(help_desc_8[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 11,											 0},
					{ 22,					 11,											 0},
					{ 33,					 11,											 0},
					{ 44,					 11,											 0},
					{ 0,					 sizeof(help_desc_10)/sizeof(help_desc_10[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 11,											 0},
					{ 22,					 4,												 0},
					{ 0,					 11,											 0},
					{ 11,					 11,											 0},
					{ 22,					 11,											 0},
					{ 33,					 2,												 0},
					{ 0,					 11,											 0},
					{ 11,					 11,											 0},
					{ 22,					 6,												 0},
					{ 0,					 sizeof(help_desc_14)/sizeof(help_desc_14[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 3,												 0},
					{ 0,					 11,											 0},
					{ 11,					 11,											 0},
					{ 0,					 sizeof(help_desc_17)/sizeof(help_desc_17[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 2,												 0},
					{ 0,					 sizeof(help_desc_19)/sizeof(help_desc_19[0]),	 0},
					{ 0,					 sizeof(help_desc_20)/sizeof(help_desc_20[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 2,												 0},
					{ 0,					 11,											 0},
					{ 11,					 1,												 0},
					{ 0,					 11,											 0},
					{ 11,					 3,												 0},
					{ 0,					 11,											 0},
					{ 11,					 11,											 0},
					{ 22,					 9,												 0},
					{ 0,					 sizeof(help_desc_25)/sizeof(help_desc_25[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 3,												 0},
					{ 0,					 sizeof(help_desc_27)/sizeof(help_desc_27[0]),	 0},
					{ 0,					 11,											 0},
					{ 11,					 3,												 0},
					{ 0,					 sizeof(help_desc_29)/sizeof(help_desc_29[0]),	 0},
					
					{ 0,					 11,	 0},
					{ 11,					 4,	 0},
//#ifdef _TEACHER_SYSTEM
					{ 0,					 11,	 0},
					{ 11,					 1,	 0},
//#endif
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
					{ 0,                     11,  0},
				};

//所有SEG的资料	  几页开始的索引号,	 页数,	 tile
SEG help_seg[]={{ 0,				 1,		 "主要功能"},
				{ 1,				 2,		 "新手入门"},
				{ 3,				 1,		 "一般"},
				{ 4,				 3,		 "关于对话"},
				{ 7,				 1,		 "关于道具宠物"},
				{ 8,				 1,		 "关于战斗"},
				{ 9,				 1,		 "关于家族"},
				{ 10,				 1,		 "关于精灵"},
				{ 11,				 4+1,		 "其他"},	
				{ 15+1,				 1,		 "关于游戏基本操作"},
				{ 16+1,				 3,		 "关于功能视窗栏（下方状态列）"},
				{ 19+1,				 4,		 "关于游戏设定"},
				{ 23+1,				 3,		 "物品"},
				{ 26+1,				 1,		 "宠物"},
				{ 27+1,				 2,		 "光明精灵"},
				{ 29+1,				 2,		 "黑暗精灵"},
				{ 31+1,				 1,		 "属性精灵"},
				{ 32+1,				 2,		 "特殊精灵"},
				{ 34+1,				 1,		 "成立与解散"},
				{ 35+1,				 1,		 "加入及退出家族"},
				{ 36+1,				 2,		 "家族留言版"},
				{ 38+1,				 2,		 "族长功能"},
				{ 40+1,				 2,		 "庄园特殊功能"},
				{ 42+1,				 3,		 "一般战斗"},
				{ 45+1,				 1,		 "一般PK"},
				{ 46+1,				 2,		 "家族PK"},
				{ 48+1,				 1,		 "庄园争夺战"},
				{ 49+1,				 2,		 "关于自动战斗设定"},
				{ 51+1,				 1,		 "魔法精灵"},
				{ 52+1,				 2,		 "精灵的召唤"} //29
//#ifdef _TEACHER_SYSTEM
			 ,{ 54+1,				 2,		 "导师系统"}
//#endif
			   ,{ 56+1,               20,      "任务日志"}
			};

short HelpProcNo;
char HelpMsg[][32] = { "回上一层的HELP", "回上一页", "看下一页", "离开HELP"};
#ifdef _ANGEL_SUMMON
short jumpHelpPage = 0;
short jumpHelpSeg = 0;
#endif

#ifdef _JOBDAILY
extern JOBDAILY jobdaily[MAXMISSION];
#endif

//  return: 0 ... 处理中
//          !0 ... 处理完毕
int HelpProc()
{
	static int btnId[16];
	static unsigned char seg_history[16];
	static ACTION *ptActMenuWin = NULL;
	static int x = 110, y = 50, seg_index, page_index, desc_index, history_index;
	static int btnState[4];
	static unsigned long dwPressTime;
	int id = 0;
	int focusId = 0;
	int i, j;
	LPSEG seg;
	LPPAGE page;
	LPDESC desc;
	//初始化
	if( HelpProcNo == 0){
		for( i = 0; i < sizeof(btnId)/sizeof(int); i++)
			btnId[i] = -2;
		for( i = 0; i < sizeof(btnState)/sizeof(int); i++)
			btnState[i] = 0;
		btnState[3] = 0;
		for( i = 0; i < 3; i++)
			btnState[i] = -1;
		seg_index = page_index = desc_index = 0;

		history_index = 0;				//曾经浏览过的history
		ptActMenuWin = MakeWindowDisp( x, y, 420, 380, CG_FIELD_HELP_WND, -1);
		HelpProcNo++;
		dwPressTime = 0;
#ifdef _JOBDAILY
		char look[10];
		strcpy(look,"dyedye");
		lssproto_JOBDAILY_send(sockfd,look);
#endif
	}
	//初始化了
	if( ptActMenuWin != NULL){
		id = -1;
		focusId = -1;

		seg = &help_seg[seg_index];
		page = &help_page[page_index];
		desc = help_index[seg_index]+page->desc_index;

#ifdef _ANGEL_SUMMON
		if( jumpHelpPage != 0 || jumpHelpSeg != 0 ) {
			page_index = jumpHelpPage;
			seg_index = jumpHelpSeg;
			
			jumpHelpPage = 0;
			jumpHelpSeg = 0;
			
			seg = &help_seg[seg_index];
			page = &help_page[page_index];
			desc = help_index[seg_index]+page->desc_index;
			
			btnState[1] = -1;
			if( seg->page_index < page_index)				//是否可回"上一页"
				btnState[1] = 0;
			btnState[2] = -1;
			if( (seg->page_index+seg->page_num-1) > page_index)//是否可按"下一页"
				btnState[2] = 0;
		}
#endif

		//视窗已打开
		if( ptActMenuWin->hp >= 1){
			//滑鼠位置和按钮的判断
			id = selGraId( btnId, sizeof(btnId)/sizeof(int));
			if( id == -1)
				if( (id=selFontId( &btnId[4], sizeof(btnId)/sizeof(int)-4)) >= 0){
					id += 4;
				}
			focusId = focusGraId( btnId, sizeof(btnId)/sizeof(int));
		}
		//检查其它的视窗打开时，关闭
		if( CheckMenuFlag()){
			id = 100;
		}else
		//按ESC关闭
		if( (joy_trg[ 0 ] & JOY_ESC) /*&& GetImeString() == NULL*/){
			id = 100;
			play_se( 203, 320, 240);	//视窗关闭声
		}else
		//按HELP关闭
		if( HelpProcNo == 1000){
			id = 100;
		}

		//按钮押下后的弹起状态，处理按按钮的event
		if( dwPressTime){
			if( TimeGetTime()>(dwPressTime+100)){
				dwPressTime = 0;
				//按"上一层"
				if( btnState[0] == 1){
					if( history_index > 0){								//按"上一层"是否合法
						history_index--;
						seg_index = seg_history[history_index];			//取出上一层的seg index
						seg = &help_seg[seg_index];						//指向新的seg
						page_index = seg->page_index;
						page = &help_page[page_index];					//指向新的seg的page
						desc_index = page->desc_index;
						desc = help_index[seg_index]+page->desc_index;	//指向新page的desc
					}
					btnState[0] = -1;
					if( history_index > 0)								//是否可按"上一层"
						btnState[0] = 0;
					btnState[1] = -1;									//不能按"上一页"
					btnState[2] = -1;
					if( (seg->page_index+seg->page_num-1) > page_index)	//是否可按"下一页"
						btnState[2] = 0;
				}
				//按"上一页"
				if( btnState[1] == 1){
					if( seg->page_index < page_index){			//按"上一页"是否合法
						page_index--;
						page = &help_page[page_index];			//指向上一页
						desc_index = page->desc_index;
						desc = help_index[seg_index]+desc_index;//指向新一页的desc开头
						btnState[2] = 0;						//可按"下一页"
					}
					btnState[1] = -1;
					if( seg->page_index < page_index)			//是否可按"上一页"
						btnState[1] = 0;
				}
				//按"下一页"
				if( btnState[2] == 1){
					if( (seg->page_index+seg->page_num-1) > page_index){//按"下一页"是否合法
						page_index++;
						page = &help_page[page_index];					//指向下一页
						desc_index = page->desc_index;
						desc = help_index[seg_index]+desc_index;		//指向新一页的desc开头
						btnState[1] = 0;								//可按"上一页"
					}
					btnState[2] = -1;
					if( (seg->page_index+seg->page_num-1) > page_index)	//是否可按"下一页"
						btnState[2] = 0;
				}
				//按"离开"
				if( btnState[3] == 1){
					play_se( 203, 320, 240);	//视窗关闭声
					id = 100;
				}
			}

		}else{
			if( 0 <= id && id <= 3){
				//按按钮的动作
				btnState[id] = 1;
				id = -1;
				dwPressTime = TimeGetTime();
				play_se( 217, 320, 240);	//CLICK声
			}else if( 4 <= id && id <= 15){
				//按文字按钮的动作
				id -= 4;

				for( i = 0; i < page->desc_num; i++){
					if( id == i){	//寻找按了那一行文字按钮
						//记录上一层的buffer超过
						if( history_index >= 16){
							history_index = 15;
							for( j = 1; j < 16; j++)
								seg_history[j-1] = seg_history[j];
						}
						btnState[0] = 0;	//可按"上一层"
						seg_history[history_index] = (unsigned char)seg_index;	//记录上一层的seg_index
						history_index++;
						seg_index = desc[i].linkto_seg_no;				//连结的seg index
						seg = &help_seg[seg_index];						//指向新的seg
						page_index = seg->page_index;					//此一seg的起始page index
						page = &help_page[page_index];					//指向新的page
						desc_index = page->desc_index;					//此一page的起始desc index
						desc = help_index[seg_index]+page->desc_index;	//指向新的desc
						btnState[1] = -1;
						if( seg->page_index < page_index)				//是否可回"上一页"
							btnState[1] = 0;
						btnState[2] = -1;
						if( (seg->page_index+seg->page_num-1) > page_index)//是否可按"下一页"
							btnState[2] = 0;
						break;
					}
				}
				id = -1;
				play_se( 217, 320, 240);	//CLICK声
			}
		}

		//视窗关闭
		if( id >= 0){
			DeathAction( ptActMenuWin);
			ptActMenuWin = NULL;
			return 1;
		}
		if( ptActMenuWin->hp >= 1){
			if( 0<=focusId && focusId<=3){
				//提示说明
				//ShowBottomLineString( FONT_PAL_WHITE, HelpMsg[focusId]);
			}
			//初始化
			for( i = 0; i < sizeof(btnId)/sizeof(int); i++)
				btnId[i] = -2;
			//秀视窗底图
			StockDispBuffer( ((WINDOW_DISP *)ptActMenuWin->pYobi)->mx, ((WINDOW_DISP *)ptActMenuWin->pYobi)->my, DISP_PRIO_MENU, CG_FIELD_HELP_WND, 1);
			//秀按钮的动作
			if( btnState[0] >= 0)
				btnId[0] = StockDispBuffer( x+136+32, y+352+10, DISP_PRIO_IME3, CG_FIELD_HELP_PRELAYER+btnState[0], 2);
			if( btnState[1] >= 0)
				btnId[1] = StockDispBuffer( x+207+32, y+352+10, DISP_PRIO_IME3, CG_FIELD_HELP_PREPAGE+btnState[1], 2);
			if( btnState[2] >= 0)
				btnId[2] = StockDispBuffer( x+277+32, y+352+10, DISP_PRIO_IME3, CG_FIELD_HELP_NEXTPAGE+btnState[2], 2);
			if( btnState[3] >= 0)
				btnId[3] = StockDispBuffer( x+347+32, y+352+10, DISP_PRIO_IME3, CG_FIELD_HELP_EXIT+btnState[3], 2);
			//秀title
			StockFontBuffer( x+20, y+35, FONT_PRIO_FRONT, FONT_PAL_GREEN, seg->tile, 0);
			int xx;
			//秀出此页所有的文字
			for( i = 0; i < page->desc_num; i++){
				xx = x+34;
				if( desc->bmpno){		//此行有图示
					StockDispBuffer( xx+desc->indent*14+help_bmp[desc->bmpno].x, y+i*25+70+help_bmp[desc->bmpno].y, DISP_PRIO_IME3, +help_bmp[desc->bmpno].bmpno, 0);
					xx += 28;
				}
				xx += desc->indent*14;
				if( desc->linkto_seg_no){
					//此行可选择
					btnId[i+4] = StockFontBuffer( xx, y+i*25+70, FONT_PRIO_FRONT, desc->color, desc->description, 2);
				}else
					if(strcmp(desc->description,"jobdaily") ==0){
#ifdef _JOBDAILY
						char buf[10];
						sprintf(buf,"%d",jobdaily[(page_index-57)*10+i-1].JobId);
						if(!atoi(buf))	buf[0] = '\0'; //不印0出来
						StockFontBuffer(xx     ,y+i*25+70,FONT_PRIO_FRONT,FONT_PAL_WHITE,buf,0);
						StockFontBuffer(xx+30  ,y+i*25+70,FONT_PRIO_FRONT,FONT_PAL_WHITE,jobdaily[(page_index-57)*10+i-1].explain,0);	
						StockFontBuffer(xx+328 ,y+i*25+70,FONT_PRIO_FRONT,FONT_PAL_WHITE,jobdaily[(page_index-57)*10+i-1].state,0);
#else
						StockFontBuffer( xx, y+i*25+70, FONT_PRIO_FRONT, desc->color, desc->description, 0);
#endif
					}else{
						//此行只是单纯的说明
						StockFontBuffer( xx, y+i*25+70, FONT_PRIO_FRONT, desc->color, desc->description, 0);
					}
				desc++;
			}
		}
	}
	return 0;
}

